package com.dragon.modules.yuegou.entity.wallet;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.wallet.CheckWithdrawRecordStatus;
import com.dragon.modules.yuegou.enums.wallet.CheckWithdrawRecordUserType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 提现审核记录实体类<br>
 * 对应的表为：walt_check_withdraw_record<br>
 * 
 * @author pbuilder generated
 * @date 2019-11-19 19:23:49
 * @company sgy
 * @version 2.0
 */
@TableName("walt_check_withdraw_record")
@ApiModel(description = "提现审核记录")
public class CheckWithdrawRecordEntity {

    /** 提现审核记录id */
	@ApiModelProperty("提现审核记录id")
	protected String id;

    /** 用户id */
	@ApiModelProperty("用户id")
	protected String userId;

    /** 钱包ID */
	@ApiModelProperty("钱包ID")
	protected String walletId;

    /** [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER */
	@ApiModelProperty("[枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER")
	protected CheckWithdrawRecordUserType userType;

    /** 提现金额 */
	@ApiModelProperty("提现金额")
	protected BigDecimal withdrawDeposit;

    /** 提现后金额 */
	@ApiModelProperty("提现后金额")
	protected BigDecimal amountAfterWithdrawal;

    /** 开户行 */
	@ApiModelProperty("开户行")
	protected String bankOfDeposit;

    /** 银行卡号 */
	@ApiModelProperty("银行卡号")
	protected String encBankNo;

    /** 账户名 */
	@ApiModelProperty("账户名")
	protected String accountName;

    /** [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS */
	@ApiModelProperty("[枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS")
	protected CheckWithdrawRecordStatus status;

    /** 创建人ID */
	@ApiModelProperty("创建人ID")
	protected String createdBy;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 审核人 */
	@ApiModelProperty("审核人")
	protected Long checkedBy;

    /** 审核时间 */
	@ApiModelProperty("审核时间")
	protected LocalDateTime checkedTime;

	/**
	 * 构造一个空提现审核记录实体对象
	 */
	public CheckWithdrawRecordEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个提现审核记录实体对象
	 * 
	 * @param other 其它对象
	 */
	public CheckWithdrawRecordEntity(CheckWithdrawRecordEntity other){
		super();
     	this.id = other.id;
     	this.userId = other.userId;
     	this.walletId = other.walletId;
     	this.userType = other.userType;
     	this.withdrawDeposit = other.withdrawDeposit;
     	this.amountAfterWithdrawal = other.amountAfterWithdrawal;
     	this.bankOfDeposit = other.bankOfDeposit;
     	this.encBankNo = other.encBankNo;
     	this.accountName = other.accountName;
     	this.status = other.status;
     	this.createdBy = other.createdBy;
     	this.createdTime = other.createdTime;
     	this.checkedBy = other.checkedBy;
     	this.checkedTime = other.checkedTime;
	}


	/**
	 * 获取提现审核记录id
	 * 
	 * @return id 提现审核记录id
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置提现审核记录id
	 * 
	 * @param id 提现审核记录id
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取用户id
	 * 
	 * @return userId 用户id
	 */
	public String getUserId() {
		return userId;
	}
  	
	/**
	 * 设置用户id
	 * 
	 * @param userId 用户id
	 */
	public void setUserId(String userId) {
		this.userId = userId;
	}

	/**
	 * 获取钱包ID
	 * 
	 * @return walletId 钱包ID
	 */
	public String getWalletId() {
		return walletId;
	}
  	
	/**
	 * 设置钱包ID
	 * 
	 * @param walletId 钱包ID
	 */
	public void setWalletId(String walletId) {
		this.walletId = walletId;
	}

	/**
	 * 获取[枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER
	 * 
	 * @return userType [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER
	 */
	public CheckWithdrawRecordUserType getUserType() {
		return userType;
	}
  	
	/**
	 * 设置[枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER
	 * 
	 * @param userType [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER
	 */
	public void setUserType(CheckWithdrawRecordUserType userType) {
		this.userType = userType;
	}

	/**
	 * 获取提现金额
	 * 
	 * @return withdrawDeposit 提现金额
	 */
	public BigDecimal getWithdrawDeposit() {
		return withdrawDeposit;
	}
  	
	/**
	 * 设置提现金额
	 * 
	 * @param withdrawDeposit 提现金额
	 */
	public void setWithdrawDeposit(BigDecimal withdrawDeposit) {
		this.withdrawDeposit = withdrawDeposit;
	}

	/**
	 * 获取提现后金额
	 * 
	 * @return amountAfterWithdrawal 提现后金额
	 */
	public BigDecimal getAmountAfterWithdrawal() {
		return amountAfterWithdrawal;
	}
  	
	/**
	 * 设置提现后金额
	 * 
	 * @param amountAfterWithdrawal 提现后金额
	 */
	public void setAmountAfterWithdrawal(BigDecimal amountAfterWithdrawal) {
		this.amountAfterWithdrawal = amountAfterWithdrawal;
	}

	/**
	 * 获取开户行
	 * 
	 * @return bankOfDeposit 开户行
	 */
	public String getBankOfDeposit() {
		return bankOfDeposit;
	}
  	
	/**
	 * 设置开户行
	 * 
	 * @param bankOfDeposit 开户行
	 */
	public void setBankOfDeposit(String bankOfDeposit) {
		this.bankOfDeposit = bankOfDeposit;
	}

	/**
	 * 获取银行卡号
	 * 
	 * @return encBankNo 银行卡号
	 */
	public String getEncBankNo() {
		return encBankNo;
	}
  	
	/**
	 * 设置银行卡号
	 * 
	 * @param encBankNo 银行卡号
	 */
	public void setEncBankNo(String encBankNo) {
		this.encBankNo = encBankNo;
	}

	/**
	 * 获取账户名
	 * 
	 * @return accountName 账户名
	 */
	public String getAccountName() {
		return accountName;
	}
  	
	/**
	 * 设置账户名
	 * 
	 * @param accountName 账户名
	 */
	public void setAccountName(String accountName) {
		this.accountName = accountName;
	}

	/**
	 * 获取[枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS
	 * 
	 * @return status [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS
	 */
	public CheckWithdrawRecordStatus getStatus() {
		return status;
	}
  	
	/**
	 * 设置[枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS
	 * 
	 * @param status [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS
	 */
	public void setStatus(CheckWithdrawRecordStatus status) {
		this.status = status;
	}

	/**
	 * 获取创建人ID
	 * 
	 * @return createdBy 创建人ID
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置创建人ID
	 * 
	 * @param createdBy 创建人ID
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取审核人
	 * 
	 * @return checkedBy 审核人
	 */
	public Long getCheckedBy() {
		return checkedBy;
	}
  	
	/**
	 * 设置审核人
	 * 
	 * @param checkedBy 审核人
	 */
	public void setCheckedBy(Long checkedBy) {
		this.checkedBy = checkedBy;
	}

	/**
	 * 获取审核时间
	 * 
	 * @return checkedTime 审核时间
	 */
	public LocalDateTime getCheckedTime() {
		return checkedTime;
	}
  	
	/**
	 * 设置审核时间
	 * 
	 * @param checkedTime 审核时间
	 */
	public void setCheckedTime(LocalDateTime checkedTime) {
		this.checkedTime = checkedTime;
	}

    public String toString() {
		return new StringBuilder().append("CheckWithdrawRecordEntity{").
			append("id=").append(id).
			append(",userId=").append(userId).
			append(",walletId=").append(walletId).
			append(",userType=").append(userType).
			append(",withdrawDeposit=").append(withdrawDeposit).
			append(",amountAfterWithdrawal=").append(amountAfterWithdrawal).
			append(",bankOfDeposit=").append(bankOfDeposit).
			append(",encBankNo=").append(encBankNo).
			append(",accountName=").append(accountName).
			append(",status=").append(status).
			append(",createdBy=").append(createdBy).
			append(",createdTime=").append(createdTime).
			append(",checkedBy=").append(checkedBy).
			append(",checkedTime=").append(checkedTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public CheckWithdrawRecordEntity copy() {
		return new CheckWithdrawRecordEntity(this);
	}

    /** 提现审核记录id */
	public static final String COL_ID = "id";

    /** 用户id */
	public static final String COL_USER_ID = "user_id";

    /** 钱包ID */
	public static final String COL_WALLET_ID = "wallet_id";

    /** [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER */
	public static final String COL_USER_TYPE = "user_type";

    /** 提现金额 */
	public static final String COL_WITHDRAW_DEPOSIT = "withdraw_deposit";

    /** 提现后金额 */
	public static final String COL_AMOUNT_AFTER_WITHDRAWAL = "amount_after_withdrawal";

    /** 开户行 */
	public static final String COL_BANK_OF_DEPOSIT = "bank_of_deposit";

    /** 银行卡号 */
	public static final String COL_ENC_BANK_NO = "enc_bank_no";

    /** 账户名 */
	public static final String COL_ACCOUNT_NAME = "account_name";

    /** [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS */
	public static final String COL_STATUS = "status";

    /** 创建人ID */
	public static final String COL_CREATED_BY = "created_by";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 审核人 */
	public static final String COL_CHECKED_BY = "checked_by";

    /** 审核时间 */
	public static final String COL_CHECKED_TIME = "checked_time";
}
